﻿/*
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
				  Universidad Nacional Autónoma de México
						Soft-Express
				 " Tomar tus ideas despierta soluciones "
					      Semestre 2012-1

   Script que carga los Procedimientos Almacenados para inserción de los datos de los 8 Formularios que 
   comprende la primera parte del sistema los cuales le corresponden al Hospital Sede.

   Autor: Erick Orlando Matla Cruz (Administrador de Desarrollo)
   Fecha: 15 de Octubre del 2011

   Procedimientos Almacenados definidos como funciones postgresql en este script:
   sp_InsercionFormulario1
   sp_InsercionAuxiliarFormulario1
   sp_insercionFormulario2
   sp_InsercionFormulario3
   sp_InsercionAuxiliar1Formulario3
   sp_InsercionAuxiliar2Formulario3
   sp_InsercionAuxiliar3Formulario3
   sp_InsercionFormulario4
   sp_InsercionFormulario5
   sp_InsercionAuxiliarFormulario5
   sp_InsercionFormulario6
   sp_InsercionFormulario7
   sp_InsercionFormulario8
   sp_InsercionVisita
----------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
*/


-- Procedimiento que inserta los valores del Formulario1

CREATE OR REPLACE FUNCTION sp_InsercionFormulario1(
PnIdHospital					INTEGER,
PnIdCurso					INTEGER,
PnEspecialistasMatutino				INTEGER,
PnEspecialistasVespertino			INTEGER,
PnEspecialistasNocturno				INTEGER,
PnEspecialistasFinesSemana			INTEGER,
PnCamasAdultos					INTEGER,
PnCamasNinos					INTEGER,
PnCunas						INTEGER,
PnIncubadoras					INTEGER,
PsOtrasCensables				VARCHAR(10),
PnOtrasCensables				INTEGER,
PsEspecificacionCensables			VARCHAR(256),
PnUrgencias					INTEGER,
PnTerapiaIntensiva				INTEGER,
PnTerapiaIntermedia				INTEGER,
PnCirugiaAmbulatoria				INTEGER,
PnLaboratorioGabinete				INTEGER,
PnCunasNeonatosSanos				INTEGER,
PnCamasRecuperacionQuirofano			INTEGER,
PnTrabajoParto					INTEGER,
PsOtrasNoCensables				VARCHAR(10),
PnOtrasNoCensables				INTEGER,
PsEspecificacionNoCensables			VARCHAR(512),
PsQuirofanos					VARCHAR(10),
PnQuirofanos					INTEGER,
PsSalasExpulsion				VARCHAR(10),
PnSalasExpulsion				INTEGER,
PsConsultaExterna				VARCHAR(10),
PnConsultaExterna				INTEGER,
PsSistemaRegistroCodificacion			VARCHAR(10),
PnSistemaRegistroCodificacion			INTEGER,
PsManualNormasProcedimientos			VARCHAR(10),
PnManualNormasProcedimientos			INTEGER,
PsArchivoMaterialDidactico			VARCHAR(10),
PnArchivoMaterialDidactico			INTEGER,
PsLaboratorioRutina				VARCHAR(10),
PsCondicionesLaboratorioRutina			VARCHAR(10),
PsComentariosLaboratorioRutina			VARCHAR(512),
PsLaboratoriosEspeciales			VARCHAR(10),
PsEspecificacionLaboratoriosEspeciales		VARCHAR(512),
PsCondicionesLaboratoriosEspeciales		VARCHAR(10),
PsComentarioLaboratoriosEspeciales		VARCHAR(512),
PsGabinetes					VARCHAR(10),
PsEspecificacionGabinetes			VARCHAR(512),
PsCondicionGabinetes				VARCHAR(10),
PsComentariosGabinetes				VARCHAR(512),
PsOtrosDiagnosticoTratamiento			VARCHAR(10),
PsEspecificacionOtrosDiagnosticoTratamiento	VARCHAR(512),
PsCondicionesOtrosDiagnosticoTratamiento	VARCHAR(10),
PsComentarioOtrosDiagnosticoTratamiento		VARCHAR(512),
PsComiteMorbilidad				VARCHAR(10),
PsComiteMortalidad				VARCHAR(10),
PsComiteInfecciones				VARCHAR(10),
PsComiteExpedienteClinico			VARCHAR(10),
PsComiteBioeticaEtica				VARCHAR(10),
PsComiteAuditoriaMedica				VARCHAR(10),
PsComiteEnsenanza				VARCHAR(10),
PsComiteBioseguridad				VARCHAR(10),
PsComiteCientifico				VARCHAR(10),
PsOtrosComites					VARCHAR(10),
PsEspecificacionOtrosComites			VARCHAR(512),
PnIdVisita				        INTEGER
)
RETURNS VOID
AS
'
BEGIN

	INSERT INTO Formulario1(nEspecialistasMatutino,nEspecialistasVespertino,nEspecialistasNocturno,nEspecialistasFinesSemana,nCamasAdultos,nCamasNinos,
				nCunas,nIncubadoras,sOtrasCensables,nOtrasCensables,sEspecificacionCensables,nUrgencias,nTerapiaIntensiva,nTerapiaIntermedia,
				nCirugiaAmbulatoria,nLaboratorioGabinete,nCunasNeonatosSanos,nCamasRecuperacionQuirofano,nTrabajoParto,sOtrasNoCensables,
				nOtrasNoCensables,sEspecificacionNoCensables,sQuirofanos,nQuirofanos,sSalasExpulsion,nSalasExpulsion,sConsultaExterna,
				nConsultaExterna,sSistemaRegistroCodificacion,nSistemaRegistroCodificacion,sManualNormasProcedimientos,nManualNormasProcedimientos,
				sArchivoMaterialDidactico,nArchivoMaterialDidactico,sLaboratorioRutina,sCondicionesLaboratorioRutina,sComentariosLaboratorioRutina,
				sLaboratoriosEspeciales,sEspecificacionLaboratoriosEspeciales,sCondicionesLaboratoriosEspeciales,sComentarioLaboratoriosEspeciales,
				sGabinetes,sEspecificacionGabinetes,sCondicionGabinetes,sComentariosGabinetes,sOtrosDiagnosticoTratamiento,sEspecificacionOtrosDiagnosticoTratamiento,
				sCondicionesOtrosDiagnosticoTratamiento,sComentarioOtrosDiagnosticoTratamiento,sComiteMorbilidad,sComiteMortalidad,sComiteInfecciones,sComiteExpedienteClinico,
				sComiteBioeticaEtica,sComiteAuditoriaMedica,sComiteEnsenanza,sComiteBioseguridad,sComiteCientifico,sOtrosComites,
				sEspecificacionOtrosComites,nIdHospital,nIdCurso,nIdVisita)
	VALUES	
		(PnEspecialistasMatutino,PnEspecialistasVespertino,PnEspecialistasNocturno,PnEspecialistasFinesSemana,PnCamasAdultos,PnCamasNinos,PnCunas,PnIncubadoras,
		 PsOtrasCensables,PnOtrasCensables,PsEspecificacionCensables,PnUrgencias,PnTerapiaIntensiva,PnTerapiaIntermedia,PnCirugiaAmbulatoria,PnLaboratorioGabinete,
		 PnCunasNeonatosSanos,PnCamasRecuperacionQuirofano,PnTrabajoParto,PsOtrasNoCensables,PnOtrasNoCensables,PsEspecificacionNoCensables,PsQuirofanos,
		 PnQuirofanos,PsSalasExpulsion,PnSalasExpulsion,PsConsultaExterna,PnConsultaExterna,PsSistemaRegistroCodificacion,PnSistemaRegistroCodificacion,
		 PsManualNormasProcedimientos,PnManualNormasProcedimientos,PsArchivoMaterialDidactico,PnArchivoMaterialDidactico,PsLaboratorioRutina,
		 PsCondicionesLaboratorioRutina,PsComentariosLaboratorioRutina,PsLaboratoriosEspeciales,PsEspecificacionLaboratoriosEspeciales,PsCondicionesLaboratoriosEspeciales,
		 PsComentarioLaboratoriosEspeciales,PsGabinetes,PsEspecificacionGabinetes,PsCondicionGabinetes,PsComentariosGabinetes,PsOtrosDiagnosticoTratamiento,
		 PsEspecificacionOtrosDiagnosticoTratamiento,PsCondicionesOtrosDiagnosticoTratamiento,PsComentarioOtrosDiagnosticoTratamiento,PsComiteMorbilidad,
		 PsComiteMortalidad,PsComiteInfecciones,PsComiteExpedienteClinico,PsComiteBioeticaEtica,PsComiteAuditoriaMedica,PsComiteEnsenanza,PsComiteBioseguridad,
		 PsComiteCientifico,PsOtrosComites,PsEspecificacionOtrosComites,PnIdHospital,PnIdCurso,PnIdVisita);

END;
' LANGUAGE  'plpgsql';


-- Prodecimiento auxiliar que inserta datos del Formulario1

CREATE OR REPLACE FUNCTION sp_InsercionAuxiliarFormulario1(
PsProfesor1		VARCHAR(40),
PsNombramiento1		VARCHAR(15),
PsGrado1		VARCHAR(15),
PsAntiguedad1		INTEGER,
PsCursos1		VARCHAR(15),
PsCertificado1		VARCHAR(15),
PsProfesor2		VARCHAR(40),
PsNombramiento2		VARCHAR(15),
PsGrado2		VARCHAR(15),
PsAntiguedad2		INTEGER,
PsCursos2		VARCHAR(15),
PsCertificado2		VARCHAR(15),
PsProfesor3		VARCHAR(40),
PsNombramiento3		VARCHAR(15),
PsGrado3		VARCHAR(15),
PsAntiguedad3		INTEGER,
PsCursos3		VARCHAR(15),
PsCertificado3		VARCHAR(15),
PsProfesor4		VARCHAR(40),
PsNombramiento4		VARCHAR(15),
PsGrado4		VARCHAR(15),
PsAntiguedad4		INTEGER,
PsCursos4		VARCHAR(15),
PsCertificado4		VARCHAR(15),
PsProfesor5		VARCHAR(40),
PsNombramiento5		VARCHAR(15),
PsGrado5		VARCHAR(15),
PsAntiguedad5		INTEGER,
PsCursos5		VARCHAR(15),
PsCertificado5		VARCHAR(15),
PsProfesor6		VARCHAR(40),
PsNombramiento6		VARCHAR(15),
PsGrado6		VARCHAR(15),
PsAntiguedad6		INTEGER,
PsCursos6		VARCHAR(15),
PsCertificado6		VARCHAR(15),
PsProfesor7		VARCHAR(40),
PsNombramiento7		VARCHAR(15),
PsGrado7		VARCHAR(15),
PsAntiguedad7		INTEGER,
PsCursos7		VARCHAR(15),
PsCertificado7		VARCHAR(15),
PsProfesor8		VARCHAR(40),
PsNombramiento8		VARCHAR(15),
PsGrado8		VARCHAR(15),
PsAntiguedad8		INTEGER,
PsCursos8		VARCHAR(15),
PsCertificado8		VARCHAR(15),
PsProfesor9		VARCHAR(40),
PsNombramiento9		VARCHAR(15),
PsGrado9		VARCHAR(15),
PsAntiguedad9		INTEGER,
PsCursos9		VARCHAR(15),
PsCertificado9		VARCHAR(15),
PsProfesor0		VARCHAR(40),
PsNombramiento0		VARCHAR(15),
PsGrado0		VARCHAR(15),
PnAntiguedad0		INTEGER,
PsCursos0		VARCHAR(15),
PsCertificado0		VARCHAR(15)
)
RETURNS VOID
AS
'DECLARE VnIdFormulario1 INTEGER;
 DECLARE VnIdProfesor1	INTEGER;
 DECLARE VnIdProfesor2	INTEGER;
 DECLARE VnIdProfesor3	INTEGER;
 DECLARE VnIdProfesor4	INTEGER;
 DECLARE VnIdProfesor5	INTEGER;
 DECLARE VnIdProfesor6	INTEGER;
 DECLARE VnIdProfesor7	INTEGER;
 DECLARE VnIdProfesor8	INTEGER;
 DECLARE VnIdProfesor9	INTEGER;
 DECLARE VnIdProfesor0	INTEGER;
BEGIN
	VnIdFormulario1 = (SELECT max(nIdFormulario1) FROM Formulario1);

	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor1,PsNombramiento1,PsGrado1,PsAntiguedad1,PsCursos1,PsCertificado1);

	VnIdProfesor1 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor1,VnIdFormulario1);
	
	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor2,PsNombramiento2,PsGrado2,PsAntiguedad2,PsCursos2,PsCertificado2);

	VnIdProfesor2 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor2,VnIdFormulario1);

	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor3,PsNombramiento3,PsGrado3,PsAntiguedad3,PsCursos3,PsCertificado3);

	VnIdProfesor3 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor3,VnIdFormulario1);

	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor4,PsNombramiento4,PsGrado4,PsAntiguedad4,PsCursos4,PsCertificado4);

	VnIdProfesor4 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor4,VnIdFormulario1);

	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor5,PsNombramiento5,PsGrado5,PsAntiguedad5,PsCursos5,PsCertificado5);

	VnIdProfesor5 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor5,VnIdFormulario1);

	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor6,PsNombramiento6,PsGrado6,PsAntiguedad6,PsCursos6,PsCertificado6);

	VnIdProfesor6 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor6,VnIdFormulario1);
	
	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor7,PsNombramiento7,PsGrado7,PsAntiguedad7,PsCursos7,PsCertificado7);

	VnIdProfesor7 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor7,VnIdFormulario1);

	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor8,PsNombramiento8,PsGrado8,PsAntiguedad8,PsCursos8,PsCertificado8);

	VnIdProfesor8 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor8,VnIdFormulario1);

	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor9,PsNombramiento9,PsGrado9,PsAntiguedad9,PsCursos9,PsCertificado9);

	VnIdProfesor9 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor9,VnIdFormulario1);

	INSERT INTO Profesores(sNombre,sTipoProfesor,sGradoAcademico,nAntiguedad,sCursosDocencia,sCertificadoConsejoEspecialidad)
	VALUES
	(PsProfesor0,PsNombramiento0,PsGrado0,PnAntiguedad0,PsCursos0,PsCertificado0);

	VnIdProfesor0 = (SELECT max(nIdProfesor) FROM Profesores);

	INSERT INTO Profesores_Formulario1(nIdProfesor,nIdFormulario1)
	VALUES 
	(VnIdProfesor0,VnIdFormulario1);
END;
' LANGUAGE  'plpgsql';


-- Procedimiento que inserta los valores del Formulario2

CREATE OR REPLACE FUNCTION sp_InsercionFormulario2(
PsNombreCo1				VARCHAR(80),
PsNombreCo2				VARCHAR(80),
PsNombreCo3				VARCHAR(80),
PsNombreCo4				VARCHAR(80),
PsNombreCo5				VARCHAR(80),
PsNombreCo6				VARCHAR(80),
PsNombreCo7				VARCHAR(80),
PsNombreCo8				VARCHAR(80),
PsNombreCo9				VARCHAR(80),
PsNombreCo0				VARCHAR(80),
PsNombreCFH1				VARCHAR(80),
PsNombreCFH2				VARCHAR(80),
PsNombreCFH3				VARCHAR(80),
PsNombreCFH4				VARCHAR(80),
PsNombreCFH5				VARCHAR(80),
PsNombreCFH6				VARCHAR(80),
PsNombreCFH7				VARCHAR(80),
PsNombreCFH8				VARCHAR(80),
PsNombreCFH9				VARCHAR(80),
PsNombreCFH0				VARCHAR(80),
PsNombreProcedimiento1			VARCHAR(80),
PsNombreProcedimiento2			VARCHAR(80),
PsNombreProcedimiento3			VARCHAR(80),
PsNombreProcedimiento4			VARCHAR(80),
PsNombreProcedimiento5			VARCHAR(80),
PsNombreProcedimiento6			VARCHAR(80),
PsNombreProcedimiento7			VARCHAR(80),
PsNombreProcedimiento8			VARCHAR(80),
PsNombreProcedimiento9			VARCHAR(80),
PsNombreProcedimiento0			VARCHAR(80),
PsComplicacion1				VARCHAR(80),
PsComplicacion2				VARCHAR(80),
PsComplicacion3				VARCHAR(80),
PsComplicacion4				VARCHAR(80),
PsComplicacion5				VARCHAR(80),
PsComplicacion6				VARCHAR(80),
PsComplicacion7				VARCHAR(80),
PsComplicacion8				VARCHAR(80),
PsComplicacion9				VARCHAR(80),
PsComplicacion0				VARCHAR(80),
PsExamenLab1				VARCHAR(80),
PsExamenLab2				VARCHAR(80),
PsExamenLab3				VARCHAR(80),
PsExamenLab4				VARCHAR(80),
PsExamenLab5				VARCHAR(80),
PsExamenLab6				VARCHAR(80),
PsExamenLab7				VARCHAR(80),
PsExamenLab8				VARCHAR(80),
PsExamenLab9				VARCHAR(80),
PsExamenLab0				VARCHAR(80),
PsGabinete1				VARCHAR(80),
PsGabinete2				VARCHAR(80),
PsGabinete3				VARCHAR(80),
PsGabinete4				VARCHAR(80),
PsGabinete5				VARCHAR(80),
PsGabinete6				VARCHAR(80),
PsGabinete7				VARCHAR(80),
PsGabinete8				VARCHAR(80),
PsGabinete9				VARCHAR(80),
PsGabinete0				VARCHAR(80),
PsIntervencionistas1			VARCHAR(80),
PsIntervencionistas2			VARCHAR(80),
PsIntervencionistas3			VARCHAR(80),
PsIntervencionistas4			VARCHAR(80),
PsIntervencionistas5			VARCHAR(80),
PsIntervencionistas6			VARCHAR(80),
PsIntervencionistas7			VARCHAR(80),
PsIntervencionistas8			VARCHAR(80),
PsIntervencionistas9			VARCHAR(80),
PsIntervencionistas0			VARCHAR(80),
PnPromedioMensualConsultasExternas	INTEGER,
PnAltasMejoriaCuracion			INTEGER,
PnAltasDefuncion			INTEGER,
PnPromedioMensualIntervenciones		INTEGER,
PnPromedioMensualPartosAtendidos	INTEGER,
PnAutopistas				INTEGER,
PnBiopsias				INTEGER,
PnCitologias				INTEGER,
PnIdVisita       			INTEGER
)
RETURNS VOID
AS
'DECLARE VnIdFormulario2 INTEGER;
BEGIN
	INSERT INTO Formulario2 (nPromedioMensualConsultasExternas,nAltasMejoriaCuracion,nAltasDefuncion,nPromedioMensualIntervenciones,nPromedioMensualPartosAtendidos,
				 nAutopistas,nBiopsias,nCitologias,nIdVisita)
	VALUES (PnPromedioMensualConsultasExternas,PnAltasMejoriaCuracion,PnAltasDefuncion,PnPromedioMensualIntervenciones,PnPromedioMensualPartosAtendidos,
		PnAutopistas,PnBiopsias,PnCitologias,PnIdVisita);

	VnIdFormulario2 = (SELECT max(nIdFormulario2) FROM Formulario2);
	
	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo1,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo2,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo3,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo4,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo5,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo6,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo7,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo8,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo9,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Consulta Externa'',PsNombreCo0,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH1,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH2,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH3,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH4,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH5,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH6,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH7,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH8,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH9,VnIdFormulario2);	

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Causa Hospitalizacion'',PsNombreCFH0,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento1,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento2,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento3,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento4,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento5,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento6,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento7,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento8,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento9,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES(''Procedimiento Quirúrgico'',PsNombreProcedimiento0,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion1,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion2,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion3,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion4,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion5,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion6,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion7,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion8,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion9,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Complicación Hospitalaria'',PsComplicacion0,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab1,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab2,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab3,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab4,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab5,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab6,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab7,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab8,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab9,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Examen Laboratorio'',PsExamenLab0,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete1,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete2,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete3,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete4,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete5,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete6,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete7,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete8,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete9,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Estudios de Gabinete'',PsGabinete0,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas1,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas2,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas3,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas4,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas5,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas6,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas7,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas8,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas9,VnIdFormulario2);

	INSERT INTO Tops10(sTipo,sNombreCoChPComElabEgPi,nIdFormulario2)
	VALUES (''Procedimiento Intervencionista'',PsIntervencionistas0,VnIdFormulario2);
END;
' LANGUAGE  'plpgsql';


-- Procedimiento que inserta los valores del Formulario3
CREATE OR REPLACE FUNCTION sp_InsercionFormulario3(
PsPromedioMinimo			VARCHAR(10),
PnEspecificarPromedioMinimo		INTEGER,
PsExamenNacionalResidencias		VARCHAR(10),
PsExamenCompetenciaAcademicaUNAM	VARCHAR(10),
PsExamenTeoricoConocimientos		VARCHAR(10),
PsResidenciaRotatoria			VARCHAR(10),
PsExamenPsicometrico			VARCHAR(10),
PsExamenIngles				VARCHAR(10),
PsExamenPracticoDestrezas		VARCHAR(10),
PsExamenSaludFisica			VARCHAR(10),
PsEntrevistaPersonal			VARCHAR(10),
PsAntecedentesInstitucionSalud		VARCHAR(10),
PsEdadMaxima				VARCHAR(10),
PnEspecificacionEdad			INTEGER,
PsEstudiosPreviosOtraEspecialidad	VARCHAR(10),
PsOtroCriterioAdmision			VARCHAR(10),
PsEspecificarCriterioAdmision		VARCHAR(512),
PnDuracionCurso				INTEGER,
PsEstudiosPreviosOtraEspecialidadMedica	VARCHAR(10),
PnDuracionOtraEspecialidad		INTEGER,
PsEspecificacionOtraEspecialidad	VARCHAR(512),
PsResidenciaSoloUnidad			VARCHAR(10),
PsUnidadesComplementarias		VARCHAR(512),
PsPorObjetivos				VARCHAR(10),
PsProgramaOperativo			VARCHAR(10),
PsListadoTemas				VARCHAR(10),
PsCartaDescriptiva			VARCHAR(10),
PsProgramaRotacion			VARCHAR(10),
PsModular				VARCHAR(10),
PsAsignaturaMaterias			VARCHAR(10),
PsPorAnos				VARCHAR(10),
PsPorSemestres				VARCHAR(10),
PsOtraCaracteristica			VARCHAR(10),
PsEspecificacionOtras			VARCHAR(512),
PsAlumnosResidenciasFormales		VARCHAR(10),
PnActividadesTeoricasGrupo		INTEGER,
PnActividadesTeoricasIndependientes	INTEGER,
PnPracticaClinicaIndependiente		INTEGER,
PnPracticaClinicaTutoria		INTEGER,
PnActividadesInvestigacion		INTEGER,
PnActualizacion				INTEGER,
PnAplicacion				INTEGER,
PnGeneracion				INTEGER,
PnDesarrolloAutonomia			INTEGER,
PnDesarrolloCapacidades			INTEGER,
PsSituacionesDesarrolloDestrezas	VARCHAR(15),
PsSituacionesGraduacionDestrezas	VARCHAR(15),
PsEnsenanzaDestrezasResidentes		VARCHAR(15),
PsEnsenanzaDestrezasProfesores		VARCHAR(15),
PsSupervisionDominio			VARCHAR(15),
PsProgramanActividades			VARCHAR(15),
PsExamenTeoricoOral			VARCHAR(45),
PsPeriodicidadExamenTeoricoOral		VARCHAR(45),
PsExamenTeoricoEscrito			VARCHAR(45),
PsPeriodicidadExamenTeoricoEscrito	VARCHAR(45),
PsExamenPractico			VARCHAR(45),
PsPeriodicidadExamenPractico		VARCHAR(45),
PsListasCotejo				VARCHAR(10),
PsObservacionLibre			VARCHAR(10),
PsGuiaObservacion			VARCHAR(10),
PsEscalasEvaluativas			VARCHAR(10),
PsOtroProcedimiento			VARCHAR(10),
PsEspecificarOtroProcedimiento		VARCHAR(512),
PsRetroalimentacion			VARCHAR(45),
PsPeriodicidadProgramaOperativo		VARCHAR(45),
PsAlumnosEnDepartamentales		VARCHAR(10),
PnProcentajeDepartamental		INTEGER,
PnSeminarioAtencionMedica		INTEGER,
PnTrabajoAtencionMedica			INTEGER,
PnSeminarioInvestigacion		INTEGER,
PnSeminarioEducacion			INTEGER,
PsDificultades				VARCHAR(10),
PsEspecificacionDificultades		VARCHAR(512),
PsPercepcionEstres			VARCHAR(45),
PsComentariosPercepcionesEstres		VARCHAR(512),
PnIdVisita       INTEGER
)
RETURNS VOID
AS
'
BEGIN
	INSERT INTO Formulario3(sPromedioMinimo,nEspecificarPromedioMinimo,sExamenNacionalResidencias,sExamenCompetenciaAcademicaUNAM,sExamenTeoricoConocimientos,
				sResidenciaRotatoria,sExamenPsicometrico,sExamenIngles,sExamenPracticoDestrezas,sExamenSaludFisica,sEntrevistaPersonal,
				sAntecedentesInstitucionSalud,sEdadMaxima,nEspecificacionEdad,sEstudiosPreviosOtraEspecialidad,sOtroCriterioAdmision,
				sEspecificarCriterioAdmision,nDuracionCurso,sEstudiosPreviosOtraEspecialidadMedica,nDuracionOtraEspecialidad,sEspecificacionOtraEspecialidad,
				sResidenciaSoloUnidad,sUnidadesComplementarias,sPorObjetivos,sProgramaOperativo,sListadoTemas,sCartaDescriptiva,sProgramaRotacion,
				sModular,sAsignaturaMaterias,sPorAnos,sPorSemestres,sOtraCaracteristica,sEspecificacionOtras,sAlumnosResidenciasFormales,
				nActividadesTeoricasGrupo,nActividadesTeoricasIndependientes,nPracticaClinicaIndependiente,nPracticaClinicaTutoria,
				nActividadesInvestigacion,nActualizacion,nAplicacion,nGeneracion,nDesarrolloAutonomia,nDesarrolloCapacidades,sSituacionesDesarrolloDestrezas,
				sSituacionesGraduacionDestrezas,sEnsenanzaDestrezasResidentes,sEnsenanzaDestrezasProfesores,sSupervisionDominio,sProgramanActividades,
				sExamenTeoricoOral,sPeriodicidadExamenTeoricoOral,sExamenTeoricoEscrito,sPeriodicidadExamenTeoricoEscrito,sExamenPractico,
				sPeriodicidadExamenPractico,sListasCotejo,sObservacionLibre,sGuiaObservacion,sEscalasEvaluativas,sOtroProcedimiento,
				sEspecificarOtroProcedimiento,sRetroalimentacion,sPeriodicidadProgramaOperativo,sAlumnosEnDepartamentales,nProcentajeDepartamental,
				nSeminarioAtencionMedica,nTrabajoAtencionMedica,nSeminarioInvestigacion,nSeminarioEducacion,sDificultades,sEspecificacionDificultades,
				sPercepcionEstres,sComentariosPercepcionesEstres,nIdVisita)
	VALUES
	(PsPromedioMinimo,PnEspecificarPromedioMinimo,PsExamenNacionalResidencias,PsExamenCompetenciaAcademicaUNAM,PsExamenTeoricoConocimientos,PsResidenciaRotatoria,
	 PsExamenPsicometrico,PsExamenIngles,PsExamenPracticoDestrezas,PsExamenSaludFisica,PsEntrevistaPersonal,PsAntecedentesInstitucionSalud,PsEdadMaxima,
	 PnEspecificacionEdad,PsEstudiosPreviosOtraEspecialidad,PsOtroCriterioAdmision,PsEspecificarCriterioAdmision,PnDuracionCurso,PsEstudiosPreviosOtraEspecialidadMedica,
	 PnDuracionOtraEspecialidad,PsEspecificacionOtraEspecialidad,PsResidenciaSoloUnidad,PsUnidadesComplementarias,PsPorObjetivos,PsProgramaOperativo,
	 PsListadoTemas,PsCartaDescriptiva,PsProgramaRotacion,PsModular,PsAsignaturaMaterias,PsPorAnos,PsPorSemestres,PsOtraCaracteristica,PsEspecificacionOtras,
	 PsAlumnosResidenciasFormales,PnActividadesTeoricasGrupo,PnActividadesTeoricasIndependientes,PnPracticaClinicaIndependiente,PnPracticaClinicaTutoria,
	 PnActividadesInvestigacion,PnActualizacion,PnAplicacion,PnGeneracion,PnDesarrolloAutonomia,PnDesarrolloCapacidades,PsSituacionesDesarrolloDestrezas,
	 PsSituacionesGraduacionDestrezas,PsEnsenanzaDestrezasResidentes,PsEnsenanzaDestrezasProfesores,PsSupervisionDominio,PsProgramanActividades,PsExamenTeoricoOral,
	 PsPeriodicidadExamenTeoricoOral,PsExamenTeoricoEscrito,PsPeriodicidadExamenTeoricoEscrito,PsExamenPractico,PsPeriodicidadExamenPractico,PsListasCotejo,
	 PsObservacionLibre,PsGuiaObservacion,PsEscalasEvaluativas,PsOtroProcedimiento,PsEspecificarOtroProcedimiento,PsRetroalimentacion,PsPeriodicidadProgramaOperativo,
	 PsAlumnosEnDepartamentales,PnProcentajeDepartamental,PnSeminarioAtencionMedica,PnTrabajoAtencionMedica,PnSeminarioInvestigacion,PnSeminarioEducacion,
	 PsDificultades,PsEspecificacionDificultades,PsPercepcionEstres,PsComentariosPercepcionesEstres,PnIdVisita);
	 
END;
' LANGUAGE  'plpgsql';


-- Prodecimiento auxiliar que inserta datos del Formulario3

CREATE OR REPLACE FUNCTION sp_InsercionAuxiliar1Formulario3(
PsAreaRotacionPropia1			VARCHAR(40),
PnTiempoAreaRotacionPropia1		INTEGER,
PsAreaRotacionPropia2			VARCHAR(40),
PnTiempoAreaRotacionPropia2		INTEGER,
PsAreaRotacionPropia3			VARCHAR(40),
PnTiempoAreaRotacionPropia3		INTEGER,
PsAreaRotacionPropia4			VARCHAR(40),
PnTiempoAreaRotacionPropia4		INTEGER,
PsAreaRotacionPropia5			VARCHAR(40),
PnTiempoAreaRotacionPropia5		INTEGER,
PsAreaRotacionPropia6			VARCHAR(40),
PnTiempoAreaRotacionPropia6		INTEGER,
PsAreaRotacionPropia7			VARCHAR(40),
PnTiempoAreaRotacionPropia7		INTEGER,
PsAreaRotacionPropia8			VARCHAR(40),
PnTiempoAreaRotacionPropia8		INTEGER,
PsAreaRotacionPropia9			VARCHAR(40),
PnTiempoAreaRotacionPropia9		INTEGER,
PsAreaRotacionPropia0			VARCHAR(40),
PnTiempoAreaRotacionPropia0		INTEGER,
PsAreaRotacionComplementaria1		VARCHAR(40),
PnTiempoAreaRotacionComplementaria1	INTEGER,
PsAreaRotacionComplementaria2		VARCHAR(40),
PnTiempoAreaRotacionComplementaria2	INTEGER,
PsAreaRotacionComplementaria3		VARCHAR(40),
PnTiempoAreaRotacionComplementaria3	INTEGER,
PsAreaRotacionComplementaria4		VARCHAR(40),
PnTiempoAreaRotacionComplementaria4	INTEGER,
PsAreaRotacionComplementaria5		VARCHAR(40),
PnTiempoAreaRotacionComplementaria5	INTEGER,
PsAreaRotacionComplementaria6		VARCHAR(40),
PnTiempoAreaRotacionComplementaria6	INTEGER,
PsAreaRotacionComplementaria7		VARCHAR(40),
PnTiempoAreaRotacionComplementaria7	INTEGER,
PsAreaRotacionComplementaria8		VARCHAR(40),
PnTiempoAreaRotacionComplementaria8	INTEGER,
PsAreaRotacionComplementaria9		VARCHAR(40),
PnTiempoAreaRotacionComplementaria9	INTEGER,
PsAreaRotacionComplementaria0		VARCHAR(40),
PnTiempoAreaRotacionComplementaria0	INTEGER,
PsSubsede1				VARCHAR(40),
PnTiempoSubsede1			INTEGER,
PsSubsede2				VARCHAR(40),
PnTiempoSubsede2			INTEGER,
PsSubsede3				VARCHAR(40),
PnTiempoSubsede3			INTEGER,
PsSubsede4				VARCHAR(40),
PnTiempoSubsede4			INTEGER,
PsSubsede5				VARCHAR(40),
PnTiempoSubsede5			INTEGER,
PsSubsede6				VARCHAR(40),
PnTiempoSubsede6			INTEGER,
PsSubsede7				VARCHAR(40),
PnTiempoSubsede7			INTEGER,
PsSubsede8				VARCHAR(40),
PnTiempoSubsede8			INTEGER,
PsSubsede9				VARCHAR(40),
PnTiempoSubsede9			INTEGER,
PsSubsede0				VARCHAR(40),
PnTiempoSubsede0			INTEGER,
PnExternoR1				INTEGER,
PnExternoR2				INTEGER,
PnExternoR3				INTEGER,
PnExternoR4				INTEGER,
PnExternoR5				INTEGER,
PnExternoR6				INTEGER,
PnOtrosExternos				INTEGER
)
RETURNS VOID
AS
'DECLARE VnIdFormulario3 INTEGER;
BEGIN
	VnIdFormulario3 = (SELECT max(nIdFormulario3) FROM Formulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia1,PnTiempoAreaRotacionPropia1,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia2,PnTiempoAreaRotacionPropia2,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia3,PnTiempoAreaRotacionPropia3,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia4,PnTiempoAreaRotacionPropia4,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia5,PnTiempoAreaRotacionPropia5,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia6,PnTiempoAreaRotacionPropia6,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia7,PnTiempoAreaRotacionPropia7,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia8,PnTiempoAreaRotacionPropia8,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia9,PnTiempoAreaRotacionPropia9,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Propia de la Especialidad'',PsAreaRotacionPropia0,PnTiempoAreaRotacionPropia0,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria1,PnTiempoAreaRotacionComplementaria1,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria2,PnTiempoAreaRotacionComplementaria2,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria3,PnTiempoAreaRotacionComplementaria3,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria4,PnTiempoAreaRotacionComplementaria4,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria5,PnTiempoAreaRotacionComplementaria5,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria6,PnTiempoAreaRotacionComplementaria6,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria7,PnTiempoAreaRotacionComplementaria7,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria8,PnTiempoAreaRotacionComplementaria8,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria9,PnTiempoAreaRotacionComplementaria9,VnIdFormulario3);

	INSERT INTO AreasParaRotacionResidentes(sTipoArea,sAreaRotacion,nTiempoAreaRotacion,nIdFormulario3)
	VALUES (''Rotación Complementaria'',PsAreaRotacionComplementaria0,PnTiempoAreaRotacionComplementaria0,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede1,PnTiempoSubsede1,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede2,PnTiempoSubsede2,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede3,PnTiempoSubsede3,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede4,PnTiempoSubsede4,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede5,PnTiempoSubsede5,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede6,PnTiempoSubsede6,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede7,PnTiempoSubsede7,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede8,PnTiempoSubsede8,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede9,PnTiempoSubsede9,VnIdFormulario3);

	INSERT INTO SubsedesRotacionResidentes(sSubsede,nTiempoSubsede,nIdFormulario3)
	VALUES (PsSubsede0,PnTiempoSubsede0,VnIdFormulario3);

	INSERT INTO AlumnosExternosCursos(nExternoR1,nExternoR2,nExternoR3,nExternoR4,nExternoR5,nExternoR6,nOtrosExternos,nIdFormulario3)
	VALUES (PnExternoR1,PnExternoR2,PnExternoR3,PnExternoR4,PnExternoR5,PnExternoR6,PnOtrosExternos,VnIdFormulario3);

END;
' LANGUAGE  'plpgsql';


-- Prodecimiento auxiliar que inserta datos del Formulario3

CREATE OR REPLACE FUNCTION sp_InsercionAuxiliar2Formulario3(
PsNombreR1				VARCHAR(256),
PsNombreTrabajoInvestigacionR1		VARCHAR(256),
PsPublicadoR1				VARCHAR(10),
PsReferenciaR1				VARCHAR(256),
PsNombreR2				VARCHAR(256),
PsNombreTrabajoInvestigacionR2		VARCHAR(256),
PsPublicadoR2				VARCHAR(10),
PsReferenciaR2				VARCHAR(256),
PsNombreR3				VARCHAR(256),
PsNombreTrabajoInvestigacionR3		VARCHAR(256),
PsPublicadoR3				VARCHAR(10),
PsReferenciaR3				VARCHAR(256),
PsNombreR4				VARCHAR(256),
PsNombreTrabajoInvestigacionR4		VARCHAR(256),
PsPublicadoR4				VARCHAR(10),
PsReferenciaR4				VARCHAR(256),
PsNombreR5				VARCHAR(256),
PsNombreTrabajoInvestigacionR5		VARCHAR(256),
PsPublicadoR5				VARCHAR(10),
PsReferenciaR5				VARCHAR(256),
PsNombreR6				VARCHAR(256),
PsNombreTrabajoInvestigacionR6		VARCHAR(256),
PsPublicadoR6				VARCHAR(10),
PsReferenciaR6				VARCHAR(256),
PsNombreR7				VARCHAR(256),
PsNombreTrabajoInvestigacionR7		VARCHAR(256),
PsPublicadoR7				VARCHAR(10),
PsReferenciaR7				VARCHAR(256),
PsNombreR8				VARCHAR(256),
PsNombreTrabajoInvestigacionR8		VARCHAR(256),
PsPublicadoR8				VARCHAR(10),
PsReferenciaR8				VARCHAR(256),
PsNombreR9				VARCHAR(256),
PsNombreTrabajoInvestigacionR9		VARCHAR(256),
PsPublicadoR9				VARCHAR(10),
PsReferenciaR9				VARCHAR(256),
PsNombreR0				VARCHAR(256),
PsNombreTrabajoInvestigacionR0		VARCHAR(256),
PsPublicadoR0				VARCHAR(10),
PsReferenciaR0				VARCHAR(256),
PsNombreP1				VARCHAR(256),
PsNombreTrabajoInvestigacionP1		VARCHAR(256),
PsPublicadoP1				VARCHAR(10),
PsReferenciaP1				VARCHAR(256),
PsNombreP2				VARCHAR(256),
PsNombreTrabajoInvestigacionP2		VARCHAR(256),
PsPublicadoP2				VARCHAR(10),
PsReferenciaP2				VARCHAR(256),
PsNombreP3				VARCHAR(256),
PsNombreTrabajoInvestigacionP3		VARCHAR(256),
PsPublicadoP3				VARCHAR(10),
PsReferenciaP3				VARCHAR(256),
PsNombreP4				VARCHAR(256),
PsNombreTrabajoInvestigacionP4		VARCHAR(256),
PsPublicadoP4				VARCHAR(10),
PsReferenciaP4				VARCHAR(256),
PsNombreP5				VARCHAR(256),
PsNombreTrabajoInvestigacionP5		VARCHAR(256),
PsPublicadoP5				VARCHAR(10),
PsReferenciaP5				VARCHAR(256),
PsNombreP6				VARCHAR(256),
PsNombreTrabajoInvestigacionP6		VARCHAR(256),
PsPublicadoP6				VARCHAR(20),
PsReferenciaP6				VARCHAR(256),
PsNombreP7				VARCHAR(256),
PsNombreTrabajoInvestigacionP7		VARCHAR(256),
PsPublicadoP7				VARCHAR(10),
PsReferenciaP7				VARCHAR(256),
PsNombreP8				VARCHAR(256),
PsNombreTrabajoInvestigacionP8		VARCHAR(256),
PsPublicadoP8				VARCHAR(10),
PsReferenciaP8				VARCHAR(256),
PsNombreP9				VARCHAR(256),
PsNombreTrabajoInvestigacionP9		VARCHAR(256),
PsPublicadoP9				VARCHAR(10),
PsReferenciaP9				VARCHAR(256),
PsNombreP0				VARCHAR(256),
PsNombreTrabajoInvestigacionP0		VARCHAR(256),
PsPublicadoP0				VARCHAR(10),
PsReferenciaP0				VARCHAR(256)
)
RETURNS VOID
AS
'DECLARE VnIdFormulario3 INTEGER;
BEGIN

	VnIdFormulario3 = (SELECT max(nIdFormulario3) FROM Formulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR1,PsNombreTrabajoInvestigacionR1,PsPublicadoR1,PsReferenciaR1,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR2,PsNombreTrabajoInvestigacionR2,PsPublicadoR2,PsReferenciaR2,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR3,PsNombreTrabajoInvestigacionR3,PsPublicadoR3,PsReferenciaR3,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR4,PsNombreTrabajoInvestigacionR4,PsPublicadoR4,PsReferenciaR4,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR5,PsNombreTrabajoInvestigacionR5,PsPublicadoR5,PsReferenciaR5,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR6,PsNombreTrabajoInvestigacionR6,PsPublicadoR6,PsReferenciaR6,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR7,PsNombreTrabajoInvestigacionR7,PsPublicadoR7,PsReferenciaR7,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR8,PsNombreTrabajoInvestigacionR8,PsPublicadoR8,PsReferenciaR8,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR9,PsNombreTrabajoInvestigacionR9,PsPublicadoR9,PsReferenciaR9,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Residente'',PsNombreR0,PsNombreTrabajoInvestigacionR0,PsPublicadoR0,PsReferenciaR0,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP1,PsNombreTrabajoInvestigacionP1,PsPublicadoP1,PsReferenciaP1,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP2,PsNombreTrabajoInvestigacionP2,PsPublicadoP2,PsReferenciaP2,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP3,PsNombreTrabajoInvestigacionP3,PsPublicadoP3,PsReferenciaP3,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP4,PsNombreTrabajoInvestigacionP4,PsPublicadoP4,PsReferenciaP4,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP5,PsNombreTrabajoInvestigacionP5,PsPublicadoP5,PsReferenciaP5,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP6,PsNombreTrabajoInvestigacionP6,PsPublicadoP6,PsReferenciaP6,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP7,PsNombreTrabajoInvestigacionP7,PsPublicadoP7,PsReferenciaP7,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP8,PsNombreTrabajoInvestigacionP8,PsPublicadoP8,PsReferenciaP8,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP9,PsNombreTrabajoInvestigacionP9,PsPublicadoP9,PsReferenciaP9,VnIdFormulario3);

	INSERT INTO TrabajosInvestigacion(sTipo,sNombre,sNombreTrabajoInvestigacion,sPublicado,sReferencia,nIdFormulario3)
	VALUES (''Profesor'',PsNombreP0,PsNombreTrabajoInvestigacionP0,PsPublicadoP0,PsReferenciaP0,VnIdFormulario3);
END;
' LANGUAGE  'plpgsql';


-- Procedimiento auxiliar que inserta los valores del Formulario3

CREATE OR REPLACE FUNCTION sp_InsercionAuxiliar3Formulario3(
sNombreParticipacionProfesor1	VARCHAR(80),
sEvento1			VARCHAR(80),
sNombreParticipacionProfesor2	VARCHAR(80),
sEvento2			VARCHAR(80),
sNombreParticipacionProfesor3	VARCHAR(80),
sEvento3			VARCHAR(80),
sNombreParticipacionProfesor4	VARCHAR(80),
sEvento4			VARCHAR(80),
sNombreParticipacionProfesor5	VARCHAR(80),
sEvento5			VARCHAR(80),
sNombreParticipacionProfesor6	VARCHAR(80),
sEvento6			VARCHAR(80),
sNombreParticipacionProfesor7	VARCHAR(80),
sEvento7			VARCHAR(80),
sNombreParticipacionProfesor8	VARCHAR(80),
sEvento8			VARCHAR(80),
sNombreParticipacionProfesor9	VARCHAR(80),
sEvento9			VARCHAR(80),
sNombreParticipacionProfesor0	VARCHAR(80),
sEvento0			VARCHAR(80)
)
RETURNS VOID
AS
'DECLARE VnIdFormulario3 INTEGER;
BEGIN

	VnIdFormulario3 = (SELECT max(nIdFormulario3) FROM Formulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor1,sEvento1,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor2,sEvento2,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor3,sEvento3,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor4,sEvento4,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor5,sEvento5,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor6,sEvento6,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor7,sEvento7,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor8,sEvento8,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor9,sEvento9,VnIdFormulario3);

	INSERT INTO ParticipacionProfesores(sNombreParticipacionProfesor,sEvento,nIdFormulario3)
	VALUES (sNombreParticipacionProfesor0,sEvento0,VnIdFormulario3);
	
END;
' LANGUAGE  'plpgsql';

-- Procedimiento que inserta los valores del Formulario4

CREATE OR REPLACE FUNCTION sp_InsercionFormulario4(
PnTeoriaR1		INTEGER,
PnTeoriaR2		INTEGER,
PnTeoriaR3		INTEGER,
PnTeoriaR4		INTEGER,
PnTeoriaR5		INTEGER,
PnTeoriaR6		INTEGER,
PnTeoriaOtros		INTEGER,
PnPracticaSupR1		INTEGER,
PnPracticaSupR2		INTEGER,
PnPracticaSupR3		INTEGER,
PnPracticaSupR4		INTEGER,
PnPracticaSupR5		INTEGER,
PnPracticaSupR6		INTEGER,
PnPracticaSupOtros	INTEGER,
PnPracticaSinR1		INTEGER,
PnPracticaSinR2		INTEGER,
PnPracticaSinR3		INTEGER,
PnPracticaSinR4		INTEGER,
PnPracticaSinR5		INTEGER,
PnPracticaSinR6		INTEGER,
PnPracticaSinOtros	INTEGER,
PsTutor			VARCHAR(15),
PnConferencias		INTEGER,
PnSesion		INTEGER,
PnSeminario		INTEGER,
PnMesas			INTEGER,
PnBiblio		INTEGER,
PnTalleres		INTEGER,
PnOtrasActiv		INTEGER,
PnGuardiasCSupR1	INTEGER,
PnGuardiasCSupR2	INTEGER,
PnGuardiasCSupR3	INTEGER,
PnGuardiasCSupR4	INTEGER,
PnGuardiasCSupR5	INTEGER,
PnGuardiasCSupR6	INTEGER,
PnGuardiasCSupOtros	INTEGER,
PnGuardiasSSupR1	INTEGER,
PnGuardiasSSupR2	INTEGER,
PnGuardiasSSupR3	INTEGER,
PnGuardiasSSupR4	INTEGER,
PnGuardiasSSupR5	INTEGER,
PnGuardiasSSupR6	INTEGER,
PnGuardiasSSupOtros	INTEGER,
PsAreasDes		VARCHAR(15),
PsSanitProp		VARCHAR(15),
PsCondicAreasDes	VARCHAR(15),
PsConocPrevios		VARCHAR(15),
PsAprendizaje		VARCHAR(15),
PsComentariosAp		VARCHAR(512),
PnIdVisita       INTEGER
)
RETURNS VOID
AS
'DECLARE VnIdFormulario4 INTEGER;
BEGIN
		INSERT INTO Formulario4(sAsignacionTutor,nAsistenciaConferencias,nAsistenciaSesionesClinicas,nAsistenciaSeminarios,nMesasRedondas,
		nSesionesBiograficas,nTalleres,nOtrasActividades,sAreasDescanso,sSanitariosPropios,sCondicionesAreas,sConocimientosPrevios,
		sPercepcionProcesoEnseApren,sComentPercepcionProcesoEnseApren,nIdVisita) 
		VALUES
		(PsTutor,PnConferencias,PnSesion,PnSeminario,PnMesas,PnBiblio,PnTalleres,PnOtrasActiv,PsAreasDes,PsSanitProp,PsCondicAreasDes,
		PsConocPrevios,PsAprendizaje,PsComentariosAp,PnIdVisita);
		
		VnIdFormulario4 = (SELECT max(nIdFormulario4) FROM Formulario4);
		

		INSERT INTO Formulario4R(sTipoResidente,nEnsenanzaTeorica,nPracticaClinicaSupervision,nPracticaClinicaSinSupervision,nGuardiasSupervision,
		nGuardiasSinSupervision,nIdFormulario4)
		VALUES
		(''R1'',PnTeoriaR1,PnPracticaSupR1,PnPracticaSinR1,PnGuardiasCSupR1,PnGuardiasSSupR1,VnIdFormulario4);
	
		
		INSERT INTO Formulario4R(sTipoResidente,nEnsenanzaTeorica,nPracticaClinicaSupervision,nPracticaClinicaSinSupervision,nGuardiasSupervision,
		nGuardiasSinSupervision,nIdFormulario4)
		VALUES
		(''R2'',PnTeoriaR2,PnPracticaSupR2,PnPracticaSinR2,PnGuardiasCSupR2,PnGuardiasSSupR2,VnIdFormulario4);
		

		INSERT INTO Formulario4R(sTipoResidente,nEnsenanzaTeorica,nPracticaClinicaSupervision,nPracticaClinicaSinSupervision,nGuardiasSupervision,
		nGuardiasSinSupervision,nIdFormulario4)
		VALUES
		(''R3'',PnTeoriaR3,PnPracticaSupR3,PnPracticaSinR3,PnGuardiasCSupR3,PnGuardiasSSupR3,VnIdFormulario4);
		

		INSERT INTO Formulario4R(sTipoResidente,nEnsenanzaTeorica,nPracticaClinicaSupervision,nPracticaClinicaSinSupervision,nGuardiasSupervision,
		nGuardiasSinSupervision,nIdFormulario4)
		VALUES
		(''R4'',PnTeoriaR4,PnPracticaSupR4,PnPracticaSinR4,PnGuardiasCSupR4,PnGuardiasSSupR4,VnIdFormulario4);
		

		INSERT INTO Formulario4R(sTipoResidente,nEnsenanzaTeorica,nPracticaClinicaSupervision,nPracticaClinicaSinSupervision,nGuardiasSupervision,
		nGuardiasSinSupervision,nIdFormulario4)
		VALUES
		(''R5'',PnTeoriaR5,PnPracticaSupR5,PnPracticaSinR5,PnGuardiasCSupR5,PnGuardiasSSupR5,VnIdFormulario4);
		

		INSERT INTO Formulario4R(sTipoResidente,nEnsenanzaTeorica,nPracticaClinicaSupervision,nPracticaClinicaSinSupervision,nGuardiasSupervision,
		nGuardiasSinSupervision,nIdFormulario4)
		VALUES
		(''R6'',PnTeoriaR6,PnPracticaSupR6,PnPracticaSinR6,PnGuardiasCSupR6,PnGuardiasSSupR6,VnIdFormulario4);
		

		INSERT INTO Formulario4R(sTipoResidente,nEnsenanzaTeorica,nPracticaClinicaSupervision,nPracticaClinicaSinSupervision,nGuardiasSupervision,
		nGuardiasSinSupervision,nIdFormulario4)
		VALUES
		(''Otros'',PnTeoriaOtros,PnPracticaSupOtros,PnPracticaSinOtros,PnGuardiasCSupOtros,PnGuardiasSSupOtros,VnIdFormulario4);
		

END;
' LANGUAGE  'plpgsql';


-- Procedimiento que inserta los valores del Formulario5

CREATE OR REPLACE FUNCTION sp_InsercionFormulario5(
PsPeliculasVideocintas				VARCHAR(10),
PsGrabacionesAudio				VARCHAR(10),
PsModelosPiezasMuseo				VARCHAR(10),
PsProgramasComputarizados			VARCHAR(10),
PsOtroMaterialDidactico				VARCHAR(10),
PsEspecificacionMaterialDidactico		VARCHAR(512),
PsCanonesProyeccion				VARCHAR(10),
PsMonitoresTv					VARCHAR(10),
PsVideocasseteras				VARCHAR(10),
PsComputadoras					VARCHAR(10),
PsOtroAudiovisual				VARCHAR(10),
PsEspecificacionAudiovisual			VARCHAR(512),
PsAccesoComputo					VARCHAR(10),
PsExpedienteElectronico				VARCHAR(10),
PsSalaJuntas					VARCHAR(10),
PnNumeroSalas					INTEGER,
PnCapacidadSalas				INTEGER,
PsAulasCurso					VARCHAR(10),
PnNumeroAulasCurso				INTEGER,
PnCapacidadAulasCurso				INTEGER,
PsAuditorios					VARCHAR(10),
PnNumeroAuditorios				INTEGER,
PnCapacidadAuditorios				INTEGER,
PsBibliohemeroteca				VARCHAR(10),
PsAccesoBibliotecasDigitales			VARCHAR(10),
PsBibliotecaDigitalInstitucion			VARCHAR(10),
PsBibliotecaDigitalUNAM				VARCHAR(10),
PsBibliotecaDigitalOtras			VARCHAR(10),
PsFotocopiado					VARCHAR(10),
PsBusquedaInformacion				VARCHAR(10),
PsAccesoInternetNodos				VARCHAR(10),
PsAccesoInternetInalambrico			VARCHAR(10),
PsWifiSoloBiblioteca				VARCHAR(10),
PsWifiDiversosSitiosHospital			VARCHAR(10),
PsWifiTodoHospital				VARCHAR(10),
PsDiseminacionInformacion			VARCHAR(10),
PsPrestamosInterbibliotecarios			VARCHAR(10),
PsPrestamosDomicilio				VARCHAR(10),
PsOtrosServiciosBibliohemeroteca		VARCHAR(10),
PsEspecificacionServiciosBibliohemeroteca	VARCHAR(512),
PsSubsidioPersonal				VARCHAR(10),
PnIdVisita       INTEGER
)
RETURNS VOID
AS
'
BEGIN

	INSERT INTO Formulario5(sPeliculasVideocintas,sGrabacionesAudio,sModelosPiezasMuseo,sProgramasComputarizados,sOtroMaterialDidactico,sEspecificacionMaterialDidactico,
				sCanonesProyeccion,sMonitoresTv,sVideocasseteras,sComputadoras,sOtroAudiovisual,sEspecificacionAudiovisual,sAccesoComputo,
				sExpedienteElectronico,sSalaJuntas,nNumeroSalas,nCapacidadSalas,sAulasCurso,nNumeroAulasCurso,nCapacidadAulasCurso,sAuditorios,
				nNumeroAuditorios,nCapacidadAuditorios,sBibliohemeroteca,sAccesoBibliotecasDigitales,sBibliotecaDigitalInstitucion,sBibliotecaDigitalUNAM,
				sBibliotecaDigitalOtras,sFotocopiado,sBusquedaInformacion,sAccesoInternetNodos,sAccesoInternetInalambrico,sWifiSoloBiblioteca,
				sWifiDiversosSitiosHospital,sWifiTodoHospital,sDiseminacionInformacion,sPrestamosInterbibliotecarios,sPrestamosDomicilio,
				sOtrosServiciosBibliohemeroteca,sEspecificacionServiciosBibliohemeroteca,sSubsidioPersonal,nIdVisita)
	VALUES
	(PsPeliculasVideocintas,PsGrabacionesAudio,PsModelosPiezasMuseo,PsProgramasComputarizados,PsOtroMaterialDidactico,PsEspecificacionMaterialDidactico,PsCanonesProyeccion,
	 PsMonitoresTv,PsVideocasseteras,PsComputadoras,PsOtroAudiovisual,PsEspecificacionAudiovisual,PsAccesoComputo,PsExpedienteElectronico,PsSalaJuntas,PnNumeroSalas,
	 PnCapacidadSalas,PsAulasCurso,PnNumeroAulasCurso,PnCapacidadAulasCurso,PsAuditorios,PnNumeroAuditorios,PnCapacidadAuditorios,PsBibliohemeroteca,
	 PsAccesoBibliotecasDigitales,PsBibliotecaDigitalInstitucion,PsBibliotecaDigitalUNAM,PsBibliotecaDigitalOtras,PsFotocopiado,PsBusquedaInformacion,PsAccesoInternetNodos,
	 PsAccesoInternetInalambrico,PsWifiSoloBiblioteca,PsWifiDiversosSitiosHospital,PsWifiTodoHospital,PsDiseminacionInformacion,PsPrestamosInterbibliotecarios,
	 PsPrestamosDomicilio,PsOtrosServiciosBibliohemeroteca,PsEspecificacionServiciosBibliohemeroteca,PsSubsidioPersonal,PnIdVisita);
	
END;
' LANGUAGE  'plpgsql';


-- Procedimiento auxiliar que inserta los valores del Formulario5

CREATE OR REPLACE FUNCTION sp_InsercionAuxiliarFormulario5(
PsNombreRevistaN1			VARCHAR(40),
PsNombreRevistaN2			VARCHAR(40),
PsNombreRevistaN3			VARCHAR(40),
PsNombreRevistaN4			VARCHAR(40),
PsNombreRevistaN5			VARCHAR(40),
PsNombreRevistaN6			VARCHAR(40),
PsNombreRevistaN7			VARCHAR(40),
PsNombreRevistaN8			VARCHAR(40),
PsNombreRevistaN9			VARCHAR(40),
PsNombreRevistaN0			VARCHAR(40),
PsNombreRevistaE1			VARCHAR(40),
PsNombreRevistaE2			VARCHAR(40),
PsNombreRevistaE3			VARCHAR(40),
PsNombreRevistaE4			VARCHAR(40),
PsNombreRevistaE5			VARCHAR(40),
PsNombreRevistaE6			VARCHAR(40),
PsNombreRevistaE7			VARCHAR(40),
PsNombreRevistaE8			VARCHAR(40),
PsNombreRevistaE9			VARCHAR(40),
PsNombreRevistaE0			VARCHAR(40)
)
RETURNS VOID
AS
'DECLARE VnIdFormulario5 INTEGER;
BEGIN

	VnIdFormulario5 = (SELECT max(nIdFormulario5) FROM Formulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN1,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN2,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN3,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN4,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN5,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN6,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN7,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN8,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN9,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Nacional'',PsNombreRevistaN0,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE1,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE2,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE3,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE4,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE5,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE6,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE7,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE8,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE9,VnIdFormulario5);

	INSERT INTO Revistas(sProcedencia,sNombreRevista,nIdFormulario5)
	VALUES (''Extranjera'',PsNombreRevistaE0,VnIdFormulario5);
END;
' LANGUAGE  'plpgsql';


-- Procedimiento que inserta los valores del Formulario6

CREATE OR REPLACE FUNCTION sp_InsercionFormulario6(
PsBecasInstitucionNacionales	VARCHAR(15),
PnNumeroBecasNacionales		INTEGER,
PsBecasInstitucionExtranjeros	VARCHAR(15),
PnNumeroBecasExtranjeros	INTEGER,
PnR1N				INTEGER,
PnR2N				INTEGER,
PnR3N				INTEGER,
PnR4N				INTEGER,
PnR5N				INTEGER,
PnR6N				INTEGER,
PnOtrosN			INTEGER,
PnTotalN			INTEGER,
PnR1E				INTEGER,
PnR2E				INTEGER,
PnR3E				INTEGER,
PnR4E				INTEGER,
PnR5E				INTEGER,
PnR6E				INTEGER,
PnOtrosE			INTEGER,
PnTotalE			INTEGER,
PnIdVisita       INTEGER
)
RETURNS VOID
AS
'DECLARE VnIdFormulario6 INTEGER;
BEGIN
	INSERT INTO Formulario6(sBecasInstitucionNacionales,nNumeroBecasNacionales,sBecasInstitucionExtranjeros,nNumeroBecasExtranjeros,nIdVisita)
	VALUES	(PsBecasInstitucionNacionales,PnNumeroBecasNacionales,PsBecasInstitucionExtranjeros,PnNumeroBecasExtranjeros,PnIdVisita);

	VnIdFormulario6 = (SELECT max(nIdFormulario6) FROM Formulario6);

	INSERT INTO Formulario6R(sProcedenciaMedico,nR1,nR2,nR3,nR4,nR5,nR6,nOtros,nTotal,nIdFormulario6)
	VALUES	(''Nacionales'',PnR1N,PnR2N,PnR3N,PnR4N,PnR5N,PnR6N,PnOtrosN,PnTotalN,VnIdFormulario6);

	INSERT INTO Formulario6R(sProcedenciaMedico,nR1,nR2,nR3,nR4,nR5,nR6,nOtros,nTotal,nIdFormulario6)
	VALUES	(''Extranjeros'',PnR1E,PnR2E,PnR3E,PnR4E,PnR5E,PnR6E,PnOtrosE,PnTotalE,VnIdFormulario6);
	
END;
' LANGUAGE  'plpgsql';


-- Procedimiento que inserta los valores del Formulario7

CREATE OR REPLACE FUNCTION sp_InsercionFormulario7(
PsProblemaDiagnosticoR1		VARCHAR(15),
PsManejoPacientesR1		VARCHAR(15),
PsProcedimientosDiagnosticoR1	VARCHAR(15),
PsParticipacionIntervencionR1	VARCHAR(15),
PsPacientesCargoR1		VARCHAR(15),
PsActividadesServicioR1		VARCHAR(15),
PsActividadesInvestigacionR1	VARCHAR(15),
PsProblemaDiagnosticoR2		VARCHAR(15),
PsManejoPacientesR2		VARCHAR(15),
PsProcedimientosDiagnosticoR2	VARCHAR(15),
PsParticipacionIntervencionR2	VARCHAR(15),
PsPacientesCargoR2		VARCHAR(15),
PsActividadesServicioR2		VARCHAR(15),
PsActividadesInvestigacionR2	VARCHAR(15),
PsProblemaDiagnosticoR3		VARCHAR(15),
PsManejoPacientesR3		VARCHAR(15),
PsProcedimientosDiagnosticoR3	VARCHAR(15),
PsParticipacionIntervencionR3	VARCHAR(15),
PsPacientesCargoR3		VARCHAR(15),
PsActividadesServicioR3		VARCHAR(15),
PsActividadesInvestigacionR3	VARCHAR(15),
PsProblemaDiagnosticoR4		VARCHAR(15),
PsManejoPacientesR4		VARCHAR(15),
PsProcedimientosDiagnosticoR4	VARCHAR(15),
PsParticipacionIntervencionR4	VARCHAR(15),
PsPacientesCargoR4		VARCHAR(15),
PsActividadesServicioR4		VARCHAR(15),
PsActividadesInvestigacionR4	VARCHAR(15),
PsProblemaDiagnosticoR5		VARCHAR(15),
PsManejoPacientesR5		VARCHAR(15),
PsProcedimientosDiagnosticoR5	VARCHAR(15),
PsParticipacionIntervencionR5	VARCHAR(15),
PsPacientesCargoR5		VARCHAR(15),
PsActividadesServicioR5		VARCHAR(15),
PsActividadesInvestigacionR5	VARCHAR(15),
PsProblemaDiagnosticoR6		VARCHAR(15),
PsManejoPacientesR6		VARCHAR(15),
PsProcedimientosDiagnosticoR6	VARCHAR(15),
PsParticipacionIntervencionR6	VARCHAR(15),
PsPacientesCargoR6		VARCHAR(15),
PsActividadesServicioR6		VARCHAR(15),
PsActividadesInvestigacionR6	VARCHAR(15),
PsProblemaDiagnosticoRO		VARCHAR(15),
PsManejoPacientesRO		VARCHAR(15),
PsProcedimientosDiagnosticoRO	VARCHAR(15),
PsParticipacionIntervencionRO	VARCHAR(15),
PsPacientesCargoRO		VARCHAR(15),
PsActividadesServicioRO		VARCHAR(15),
PsActividadesInvestigacionRO	VARCHAR(15),
PnIdVisita       INTEGER
)
RETURNS VOID
AS
'DECLARE VnIdFormulario7 INTEGER;
BEGIN
	INSERT INTO Formulario7(nIdVisita) VALUES (PnIdVisita);

	VnIdFormulario7 = (SELECT max(nIdFormulario7) FROM Formulario7);

	INSERT INTO Formulario7R(sTipoResidente,sProblemaDiagnostico,sManejoPacientes,sProcedimientosDiagnostico,sParticipacionIntervencion,sPacientesCargo,
				 sActividadesServicio,sActividadesInvestigacion,nIdFormulario7)
	VALUES (''R1'',PsProblemaDiagnosticoR1,PsManejoPacientesR1,PsProcedimientosDiagnosticoR1,PsParticipacionIntervencionR1,PsPacientesCargoR1,PsActividadesServicioR1,
		PsActividadesInvestigacionR1,VnIdFormulario7);

	INSERT INTO Formulario7R(sTipoResidente,sProblemaDiagnostico,sManejoPacientes,sProcedimientosDiagnostico,sParticipacionIntervencion,sPacientesCargo,
				 sActividadesServicio,sActividadesInvestigacion,nIdFormulario7)
	VALUES (''R2'',PsProblemaDiagnosticoR2,PsManejoPacientesR2,PsProcedimientosDiagnosticoR2,PsParticipacionIntervencionR2,PsPacientesCargoR2,PsActividadesServicioR2,
		PsActividadesInvestigacionR2,VnIdFormulario7);

	INSERT INTO Formulario7R(sTipoResidente,sProblemaDiagnostico,sManejoPacientes,sProcedimientosDiagnostico,sParticipacionIntervencion,sPacientesCargo,
				 sActividadesServicio,sActividadesInvestigacion,nIdFormulario7)
	VALUES (''R3'',PsProblemaDiagnosticoR3,PsManejoPacientesR3,PsProcedimientosDiagnosticoR3,PsParticipacionIntervencionR3,PsPacientesCargoR3,PsActividadesServicioR3,
		PsActividadesInvestigacionR3,VnIdFormulario7);

	INSERT INTO Formulario7R(sTipoResidente,sProblemaDiagnostico,sManejoPacientes,sProcedimientosDiagnostico,sParticipacionIntervencion,sPacientesCargo,
				 sActividadesServicio,sActividadesInvestigacion,nIdFormulario7)
	VALUES (''R4'',PsProblemaDiagnosticoR4,PsManejoPacientesR4,PsProcedimientosDiagnosticoR4,PsParticipacionIntervencionR4,PsPacientesCargoR4,PsActividadesServicioR4,
		PsActividadesInvestigacionR4,VnIdFormulario7);

	INSERT INTO Formulario7R(sTipoResidente,sProblemaDiagnostico,sManejoPacientes,sProcedimientosDiagnostico,sParticipacionIntervencion,sPacientesCargo,
				 sActividadesServicio,sActividadesInvestigacion,nIdFormulario7)
	VALUES (''R5'',PsProblemaDiagnosticoR5,PsManejoPacientesR5,PsProcedimientosDiagnosticoR5,PsParticipacionIntervencionR5,PsPacientesCargoR5,PsActividadesServicioR5,
		PsActividadesInvestigacionR5,VnIdFormulario7);

	INSERT INTO Formulario7R(sTipoResidente,sProblemaDiagnostico,sManejoPacientes,sProcedimientosDiagnostico,sParticipacionIntervencion,sPacientesCargo,
				 sActividadesServicio,sActividadesInvestigacion,nIdFormulario7)
	VALUES (''R6'',PsProblemaDiagnosticoR6,PsManejoPacientesR6,PsProcedimientosDiagnosticoR6,PsParticipacionIntervencionR6,PsPacientesCargoR6,PsActividadesServicioR6,
		PsActividadesInvestigacionR6,VnIdFormulario7);

	INSERT INTO Formulario7R(sTipoResidente,sProblemaDiagnostico,sManejoPacientes,sProcedimientosDiagnostico,sParticipacionIntervencion,sPacientesCargo,
				 sActividadesServicio,sActividadesInvestigacion,nIdFormulario7)
	VALUES (''RO'',PsProblemaDiagnosticoRO,PsManejoPacientesRO,PsProcedimientosDiagnosticoRO,PsParticipacionIntervencionRO,PsPacientesCargoRO,PsActividadesServicioRO,
		PsActividadesInvestigacionRO,VnIdFormulario7);		
END;
' LANGUAGE  'plpgsql';


-- Procedimiento que inserta los valores del Formulario8

CREATE OR REPLACE FUNCTION sp_InsercionFormulario8(
PsConocimientosMedicos		VARCHAR(15),
PsDestrezas			VARCHAR(15),
PnIdVisita       INTEGER
)
RETURNS VOID
AS
'
BEGIN
	INSERT INTO Formulario8 (sConocimientosMedicos,sDestrezas,nIdVisita)
	VALUES (PsConocimientosMedicos,PsDestrezas,PnIdVisita);
END;
' LANGUAGE  'plpgsql';


-- Procedimiento General que asocia los formularios creados a una visita

CREATE OR REPLACE FUNCTION sp_InsercionVisita(
PnVisita        INTEGER,
PsEstado        VARCHAR(20),
PdFechaLimite   DATE
)
RETURNS VOID
AS
'
BEGIN
	INSERT INTO Visitas(nIdVisita,sEstado,dFechaLimite)
	VALUES (PnVisita,PsEstado,PdFechaLimite);
END;
' LANGUAGE  'plpgsql';